%# -*- coding: utf-8-unix -*-
%%==================================================
\chapter{系统的准确性}

将系统建模为传递函数$T(s)$，其作用是将输入的信号$r(t)$转换成输出信号$y(t)$。

\begin{figure}[!htb]
\centering
\includegraphics[width=10cm]{../../notes/images/r2y.png}
\caption{输入、系统与输出}
\label{fig6-1}
\end{figure}

无论是开环系统还是闭环系统，我们关心的一个性能指标是输出信号最终能否跟踪上输入信号。

\section{稳态误差与直流增益的关系}

由于输出信号的稳态（steady state）值，是给定输入信号后时间趋于无穷大时的数值，因此

\begin{align}
y_{ss}=y(t)|_{t \rightarrow \infty}
=\lim_{s \rightarrow 0} sY(s) \\
=\lim_{s \rightarrow 0} sT(s)R(s) \\
=T(0)\lim_{s \rightarrow 0} sR(s)
\end{align}

而

$$
r_{ss}=\lim_{s \rightarrow 0} sR(S)
$$

是输入信号的稳态值。所以有

$$
y_{ss}=T(0)r_{ss}
$$

我们期望输出信号可以对输入信号进行准确的跟踪，就要让$T(0)=1$。

\begin{mydef}{稳态（直流）增益}{}

$T(0)$称为传递函数$T(S)$的稳态（直流）增益。

\end{mydef}

\begin{figure}[!htb]
\centering
\includegraphics[width=10cm]{../../notes/images/example8-1.png}
\caption{例1}
\label{fig6-2}
\end{figure}

\begin{example}

在下面的闭环系统中

\begin{figure}[!htb]
\centering
\includegraphics[width=10cm]{../../notes/images/example8-1.png}
\caption{例1}
\label{fig6-2}
\end{figure}

设计合适的K值，使系统对单位阶跃响应的稳态误差为0。

\soln

首先计算$T(s)$

$$
\begin{align}
T(S)&=\frac{G}{1+GH} \\
&=\frac{K(s+4)}{s^2+6s+8+2K}
\end{align}
$$

根据

$$
T(0)=\frac{4K}{8+2K}=1
$$

可以计算出

$$
K=4
$$

\end{example}


### 高阶零极点消去规则？


\section{稳态误差与$T(s)$的关系}

如果系统闭环传递函数是

\begin{align}
T(s)=\frac{b_ns^n+b_{n-1}s^{n-1}+...+b_1s+b_0}{a_ns^n+a_{n-1}s^{n-1}+...+a_1s+a_0}
\end{align}

则误差信号

\begin{align}
E(s)&=R(s)-Y(s)=[1-T(s)]R(S) \\
&=\frac{(a_n-b_n)s^n+(a_{n-1}-b_{n-1})s^{n-1}+...+(a_1-b_1)s+(a_0-b_0)}{a_ns^n+a_{n-1}s^{n-1}+...+a_1s+a_0}R(S)
\end{align}

因此

\begin{align}
e_{ss}&=\lim_{t \rightarrow \infty}e(t) \\
&=\lim_{s \rightarrow 0}s\frac{(a_n-b_n)s^n+(a_{n-1}-b_{n-1})s^{n-1}+...+(a_1-b_1)s+(a_0-b_0)}{a_ns^n+a_{n-1}s^{n-1}+...+a_1s+a_0}R(s)
\end{align}

已经知道，输入信号是各种不同信号的组合

$$
r(t)=r(0)+\frac{dr}{dt}|_{t=0}t+\frac{d^2r}{dt^2}|_{t=0}t^2+...
$$

下面看一下系统在跟踪不同输入信号时的能力

（1）常值（阶跃）阶跃输入

\begin{align}
r(t)=1(t) \\
R(s)=\frac{1}{s}
\end{align}

此时，根据公式（10）

$$
e_{ss}=\frac{a_0-b_0}{a_0}
$$

想要在单位阶跃输入下，稳态误差为0，需要满足

$$
a_0=b_0
$$

这样，闭环传递函数的形式为

$$
T(s)=\frac{b_ns^n+b_{n-1}s^{n-1}+...+b_1s+a_0}{a_ns^n+a_{n-1}s^{n-1}+...+a_1s+a_0}
$$




（2）速度（斜坡）输入

\begin{align}
r(t) = t \\
R(s) = \frac{1}{s^2}
\end{align}

此时，根据公式（10）

$$
e_{ss}=\frac{(a_1-b_1)s+(a_0-b_0)}{a_0s}
$$

想要在单位阶跃输入下，稳态误差为0，需要满足

\begin{align}
a_0=b_0 \\
a_1=b_1
\end{align}

这样，闭环传递函数的形式为

$$
T(s)=\frac{b_ns^n+b_{n-1}s^{n-1}+...+a_1s+a_0}{a_ns^n+a_{n-1}s^{n-1}+...+a_1s+a_0}
$$


（3）加速度输入

\begin{align}
r(t)=\frac{1}{2}t^2 \\
R(s)=\frac{1}{s^3}
\end{align}

可以得到系统的稳态误差为

\begin{align}
e_{ss}=\frac{(a_2-b_2)s^2+(a_1-b_1)s+(a_0-b_0)}{a_0s^2}\bigg|_{s \rightarrow 0}
\end{align}

若要求加速度响应稳态误差为0，闭环传递函数的形式为

$$
T(s)=\frac{b_ns^n+b_{n-1}s^{n-1}+...+a_2s^2++a_1s+a_0}{a_ns^n+a_{n-1}s^{n-1}+...+a_2s^2+a_1s+a_0}
$$

- 思考：

  标准二阶系统，能否无差的跟踪阶跃信号、斜坡信号、加速度信号？
  $$
  T(s)=\frac{\omega_n^2}{s^2+2\zeta \omega_n+\omega_n^2}
  $$

\begin{example}

导弹的PID控制器

\soln

\end{example}



\section{稳态误差与$G(s)$的关系}

由于

$$
E(s)=R(s)-Y(s)=\frac{1}{1+G(s)}R(s)
$$

因此稳态误差为

$$
e_{ss}=\lim_{t \rightarrow \infty}e(t)
=\lim_{s \rightarrow 0}sE(s) \\
=\lim_{s \rightarrow 0}s\frac{1}{1+G(s)}R(s)
$$

（1）当输入为单位阶跃信号时

$$
e_{ss}=\lim_{s \rightarrow 0}s\frac{1}{1+G(s)}\frac{1}{s} \\
=\frac{1}{1+G(0)}
$$

可见，此时稳态误差仅与$G(0)$有关，我们称其为位置误差系数$K_p$：

$$
K_p=G(s)|_{s=0}=G(0)
$$

（2）当输入为单位斜坡信号时

$$
e_{ss}=\lim_{s \rightarrow 0}s\frac{1}{1+G(s)}\frac{1}{s^2} \\
=\lim_{s \rightarrow 0}\frac{1}{s+sG(s)}
$$

由于s是无穷小量，因此此时稳态误差仅与$sG(S)|_{s=0}$有关，我们称其为速度误差系数

$$
K_v=sG(s)|_{s=0}
$$

（3）当输入为单位加速度信号时

$$
e_{ss}=\lim_{s \rightarrow 0}s\frac{1}{1+G(s)}\frac{1}{s^3} \\
=\lim_{s \rightarrow 0}\frac{1}{s^2+s^2G(s)}
$$

此时稳态误差仅与$s^2G(S)|_{s=0}$有关，我们称其为加速度误差系数

$$
K_a=s^2G(s)|_{s=0}
$$


这里引入开环传递函数$G(s)$的型数的概念，也就是$G(s)$包含纯积分环节的个数。

\begin{mydef}{传递函数$G(s)$的型数}{}

传递函数$G(s)$包含纯积分环节的个数。

\end{mydef}

$$
G(S)=K\frac{\prod_{i=1}^M(s+z_i)}{s^N \prod_{j=1}^Q(s+p_j)}
$$

（1）0型系统：无纯积分环节

$$
G(S)=K\frac{\prod_{i=1}^M(s+z_i)}{ \prod_{j=1}^Q(s+p_j)}
$$

位置误差系数为常数

速度误差系数为0

加速度误差系数为0

因此对应不同的输入信号，稳态误差不同

输入阶跃信号时，稳态误差为常数

输入斜坡信号时，稳态误差为无穷

输入加速度信号时，稳态误差为无穷



（2）1型系统：有一个纯积分环节

$$
G(S)=K\frac{\prod_{i=1}^M(s+z_i)}{ s\prod_{j=1}^Q(s+p_j)}
$$

位置误差系数为无穷大，

速度误差系数为常数

加速度误差系数为0

因此对应不同的输入信号，稳态误差不同

输入阶跃信号时，稳态误差为0

输入斜坡信号时，稳态误差为常数

输入加速度信号时，稳态误差为无穷



（2）2型系统：有两个纯积分环节

$$
G(S)=K\frac{\prod_{i=1}^M(s+z_i)}{ s^2\prod_{j=1}^Q(s+p_j)}
$$

位置误差系数为无穷大，

速度误差系数为无穷大

加速度误差系数为常数

因此对应不同的输入信号，稳态误差不同

输入阶跃信号时，稳态误差为0

输入斜坡信号时，稳态误差为0

输入加速度信号时，稳态误差为常数

\begin{figure}[!htb]
\centering
\includegraphics[width=10cm]{../../notes/images/gs2ess.png}
\caption{$G(s)$与$e_{ss}$的关系表}
\label{fig6-3}
\end{figure}

需要注意的是：PID或PIDF使二阶系统变成1型系统，跟踪性能好，但由于控制器中引入了纯积分，因此控制器是临界稳定的。

\section{干扰量$D$造成的稳态误差}

干扰造成的影响都是误差：

$$
E(S)=\frac{G(s)}{1+C(S)G(s)}D(s)
$$

如果干扰为阶跃函数，则稳态误差为

\begin{align}
e_{ss}&=\lim_{s \rightarrow 0}s\frac{G(S)}{1+C(s)G(s)}\frac{1}{s} \\
&=\frac{G(0)}{1+C(0)G(0)} \\
&\approx \frac{1}{C(0)}
\end{align}

假设$C(0)G(0) \gg 1$，则$C(0)$越大抗干扰能力越强。



如果要求干扰造成的稳态误差为0，则应采用积分型控制器。


\section{反馈系统的稳态误差}





